#region License
// IPostService.cs
// 
// Copyright (c) 2012 Xoqal.com
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
// http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#endregion

namespace Kaqaz.Services
{
    using System;
    using System.Collections.Generic;
    using Xoqal.Data.Models;

    public interface IPostService
    {
        /// <summary>
        /// Gets the posts.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <param name="tag">The tag.</param>
        /// <param name="pageSize">Size of the page.</param>
        /// <returns></returns>
        IPaginated<Kaqaz.Models.Post> GetPosts(int page, string tag, int pageSize);

        /// <summary>
        /// Sets the post data.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="entity">The entity.</param>
        void SetPostData(Models.Post model, Kaqaz.Entities.Post entity);

        /// <summary>
        /// Gets the visible comments.
        /// </summary>
        /// <param name="post">The post.</param>
        /// <returns></returns>
        IEnumerable<Entities.Comment> GetVisibleComments(Entities.Post post);
    }
}
